home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / RIncludes / Menus.r < prev    next >
Encoding:
Text File  |  1998-08-17  |  4.4 KB  |  152 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Menus.r
  3.  
  4.      Contains:    Menu Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 8.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1985-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17.  
  18. #ifndef __MENUS_R__
  19. #define __MENUS_R__
  20.  
  21. #ifndef __CONDITIONALMACROS_R__
  22. #include "ConditionalMacros.r"
  23. #endif
  24.  
  25. #define kMenuStdMenuProc                 63
  26. #define kMenuStdMenuBarProc             63
  27.  
  28. #define kMenuNoModifiers                 0                    /*  Mask for no modifiers */
  29. #define kMenuShiftModifier                 0x01                /*  Mask for shift key modifier */
  30. #define kMenuOptionModifier             0x02                /*  Mask for option key modifier */
  31. #define kMenuControlModifier             0x04                /*  Mask for control key modifier */
  32. #define kMenuNoCommandModifier             0x08                /*  Mask for no command key modifier */
  33.  
  34. #define kMenuNoIcon                     0                    /*  No icon */
  35. #define kMenuIconType                     1                    /*  Type for ICON */
  36. #define kMenuShrinkIconType             2                    /*  Type for ICON plotted 16 x 16 */
  37. #define kMenuSmallIconType                 3                    /*  Type for SICN */
  38. #define kMenuColorIconType                 4                    /*  Type for cicn */
  39. #define kMenuIconSuiteType                 5                    /*  Type for Icon Suite */
  40. #define kMenuIconRefType                 6                    /*  Type for Icon Ref */
  41.  
  42. #define gestaltContextualMenuAttr         'cmnu'
  43. #define gestaltContextualMenuUnusedBit     0
  44. #define gestaltContextualMenuTrapAvailable  1
  45.  
  46. #define kCMHelpItemNoHelp                 0
  47. #define kCMHelpItemAppleGuide             1
  48. #define kCMHelpItemOtherHelp             2
  49.  
  50. #define kCMNothingSelected                 0
  51. #define kCMMenuItemSelected             1
  52. #define kCMShowHelpSelected             3
  53.  
  54.  
  55. /*----------------------------MENU • Menu-----------------------------------------------*/
  56. type 'MENU' {
  57.         integer;                                                /* Menu ID                */
  58.         fill word[2];
  59.         integer         textMenuProc = 0;                        /* ID of menu def proc    */
  60.         fill word;
  61.         unsigned hex bitstring[31]
  62.                         allEnabled = 0x7FFFFFFF;                /* Enable flags         */
  63.         boolean         disabled, enabled;                        /* Menu enable            */
  64.         pstring         apple = "\0x14";                        /* Menu Title            */
  65.         wide array {
  66.                 pstring;                                        /* Item title            */
  67.                 byte            noIcon;                         /* Icon number            */
  68.                 char            noKey = "\0x00",                /* Key equivalent or    */
  69.                                 hierarchicalMenu = "\0x1B";        /* hierarchical menu    */
  70.                 char            noMark = "\0x00",                /* Marking char or id    */
  71.                                 check = "\0x12";                /* of hierarchical menu    */
  72.                 fill bit;
  73.                 unsigned bitstring[7]
  74.                                 plain;                            /* Style                */
  75.         };
  76.         byte = 0;
  77. };
  78.  
  79. /*----------------------------MBAR • Menu Bar-------------------------------------------*/
  80. type 'MBAR' {
  81.         integer = $$CountOf(MenuArray);                         /* Number of menus        */
  82.         wide array MenuArray{
  83.                 integer;                                        /* Menu resource ID     */
  84.         };
  85. };
  86.  
  87. /*----------------------------mctb • Menu Color Lookup Table----------------------------*/
  88. type 'mctb' {
  89.         integer = $$CountOf(MCTBArray);                         /* Color table count    */
  90.         wide array MCTBArray {
  91.             integer                mctbLast = -99;                    /* Menu resource ID     */
  92.             integer;                                            /* Menu Item             */
  93.             wide array [4] {
  94.                     unsigned integer;                            /* RGB: red                */
  95.                     unsigned integer;                            /*        green            */
  96.                     unsigned integer;                            /*        blue            */
  97.             };
  98.             fill word;                                            /* Reserved word        */
  99.         };
  100. };
  101.  
  102.  
  103. /*-------------------------------xmnu • Extended menu resource---------------------------*/
  104. type 'xmnu'
  105. {
  106.     switch
  107.     {
  108.         case versionZero:
  109.             key integer = 0;    /* version */
  110.  
  111.             integer = $$Countof(ItemExtensions);
  112.             array ItemExtensions
  113.             {
  114.                 switch
  115.                 {
  116.                     case skipItem:
  117.                         key integer=0;
  118.                         
  119.                     case dataItem:
  120.                         key integer=1;
  121.                         unsigned longint;                        /* Command ID */
  122.                         unsigned hex byte;                        /* modifiers */
  123.                         fill byte;                                /* icon type placeholder */
  124.                         fill long;                                /* icon handle placeholder */
  125.                         unsigned longint sysScript=-1,            /* text encoding */
  126.                                          currScript=-2;            /*     (use currScript for default)*/
  127.                         unsigned longint;                        /* refCon */
  128.                         unsigned longint;                        /* refCon2 */
  129.                         unsigned integer noHierID=0;            /* hierarchical menu ID */
  130.                         unsigned integer sysFont=0;                /* font ID */
  131.                         integer naturalGlyph=0;                    /* keyboard glyph */
  132.                 };
  133.             };
  134.     };
  135. };
  136.  
  137. #if TARGET_OS_WIN32
  138.  
  139. /*----------------------------MENA • Menu Accessory Key---------------------------------*/
  140. type 'MENA' {
  141.         integer = $$CountOf(MenuArray);                         /* Number of keys        */
  142.         longint;                                                 /* flags                */
  143.         wide array MenuArray{
  144.                 char;                                            /* key                    */
  145.         };
  146. };
  147.  
  148. #endif
  149.  
  150. #endif /* __MENUS_R__ */
  151.  
  152.